home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- from test import test_support
- test_support.requires('audio')
- from test.test_support import verbose, findfile, TestFailed, TestSkipped
- import errno
- import fcntl
- import ossaudiodev
- import os
- import sys
- import select
- import sunaudio
- import time
- import audioop
-
- try:
- from ossaudiodev import AFMT_S16_NE
- except ImportError:
- if sys.byteorder == 'little':
- AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
- else:
- AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
- except:
- sys.byteorder == 'little'
-
- SND_FORMAT_MULAW_8 = 1
-
- def read_sound_file(path):
- fp = open(path, 'rb')
- (size, enc, rate, nchannels, extra) = sunaudio.gethdr(fp)
- data = fp.read()
- fp.close()
- if enc != SND_FORMAT_MULAW_8:
- print 'Expect .au file with 8-bit mu-law samples'
- return None
-
- data = audioop.ulaw2lin(data, 2)
- return (data, rate, 16, nchannels)
-
-
- def play_sound_file(data, rate, ssize, nchannels):
-
- try:
- dsp = ossaudiodev.open('w')
- except IOError:
- msg = None
- if msg[0] in (errno.EACCES, errno.ENODEV, errno.EBUSY):
- raise TestSkipped, msg
-
- raise TestFailed, msg
-
- dsp.bufsize()
- dsp.obufcount()
- dsp.obuffree()
- dsp.getptr()
- dsp.fileno()
- dsp.setparameters(AFMT_S16_NE, nchannels, rate)
- t1 = time.time()
- print 'playing test sound file...'
- dsp.write(data)
- dsp.close()
- t2 = time.time()
- print 'elapsed time: %.1f sec' % (t2 - t1)
-
-
- def test_setparameters(dsp):
- config1 = (ossaudiodev.AFMT_U8, 1, 8000)
- config2 = (AFMT_S16_NE, 2, 44100)
- for config in [
- config1,
- config2]:
- (fmt, channels, rate) = config
- if dsp.setfmt(fmt) == fmt and dsp.channels(channels) == channels and dsp.speed(rate) == rate:
- break
- continue
- else:
- raise RuntimeError('unable to set audio sampling parameters: you must have really weird audio hardware')
- result = dsp.setparameters(fmt, channels, rate, False)
- if not result == (fmt, channels, rate):
- raise AssertionError, 'setparameters%r: returned %r' % (config + result)
- result = dsp.setparameters(fmt, channels, rate, True)
- if not result == (fmt, channels, rate):
- raise AssertionError, 'setparameters%r: returned %r' % (config + result)
-
-
- def test_bad_setparameters(dsp):
- fmt = AFMT_S16_NE
- rate = 44100
- channels = 2
- for config in [
- (fmt, 300, rate),
- (fmt, -5, rate),
- (fmt, channels, -50)]:
- (fmt, channels, rate) = config
- result = dsp.setparameters(fmt, channels, rate, False)
- if not result != config:
- raise AssertionError, 'setparameters: unexpectedly got requested configuration'
-
- try:
- result = dsp.setparameters(fmt, channels, rate, True)
- raise AssertionError('setparameters: expected OSSAudioError')
- continue
- except ossaudiodev.OSSAudioError:
- err = None
- print 'setparameters: got OSSAudioError as expected'
- continue
-
-
-
-
-
- def test():
- (data, rate, ssize, nchannels) = read_sound_file(findfile('audiotest.au'))
- play_sound_file(data, rate, ssize, nchannels)
- dsp = ossaudiodev.open('w')
-
- try:
- test_setparameters(dsp)
- finally:
- dsp.close()
-
-
- test()
-